# -*- coding: utf-8 -*-
# @Time    : 2019/10/20 15:50
# @Author  : LiHaowen
# @Email   : lihaowen2017@163.com
# @File    : new_init.py


class User:
    def __new__(cls, *args, **kwargs):  # 传递的类，可以自定义类的生成过程
        print("in new")
        return super().__new__(cls)  # 调用父类方法能够进入init函数

    def __init__(self, name):  # 传递的是对象
        print("in init")
        self.name = name


# new 是用来控制对象的生成过程，在对象生成之前
# init是用来完善对象的
# 如果new方法不返回对象， 则不会调用init函数
if __name__ == '__main__':
    user = User("a1")
